package com.sinosoft.sinopay.web.gateway.biz.service;

import com.sinosoft.sinocloud.platform.common.exception.biz.IllegalRequestException;
import com.sinosoft.sinocloud.platform.common.exception.checked.RepeatRequestException;
import com.sinosoft.sinopay.web.gateway.dto.PayEntryRequestData;

import java.util.Map;

/**
 * 【网关支付安全服务接口类】
 * @author chenxin
 * @date 2016年11月8日 下午5:50:07 
 * @version V1.0
 */
public interface GatewaySecurityService {
	/**
	 * 根据商户验证信息签名合法性
	 * @param payEntryRequestData  商户编码
	 * @param signMsg   签名信息
	 */
	void  checkMerchantSignValid(PayEntryRequestData payEntryRequestData, String signMsg) throws IllegalRequestException;
	/**
	 * 方法功能描述
	 * @param merchantCode
	 * @param serialNo
	 */
	void  checkRepeatRequest(String merchantCode,String serialNo) throws RepeatRequestException;
	/**
	 * 检查请求ip的合法性
	 * @param tRequestIp
	 * @throws IllegalRequestException
	 */
	void checkRequestIpValid(String tRequestIp) throws IllegalRequestException;
	/**
	 * 根据商户生成相应签名
	 * @param tMerchantCode  商户号
	 * @param toSignMsgMap   需要签名的信息集合map
	 * @return
	 */
	String createSignMsg(String tMerchantCode, Map<String,String> toSignMsgMap);
}
